//All four rows (without Event Listeners ) created and saved in TT_GUI7.java //TT_GUI9.java: Draw GUI of Page1 and initialises the CBoxes from database tables. //TT_GUI10.java: TT_GUI9.java + unsuccessful operations in database + working in cboxes import java.sql.*; //import javax.sql.*; import java.util.*; import java.io.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class TT_GUI{ public static void main(String[] args){ EventQueue.invokeLater(new Runnable() { public void run(){ myFrame frame=new myFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } } class myFrame extends JFrame{ //JdbcConnection myCon; //Connection con; static Statement stmt; static ResultSet rset; // = stmt.executeQuery("select max(studentid) from student"); static String qry; static int qry_op; myFrame(){ setTitle("Administrator Screen"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); JdbcConnection myCon = new JdbcConnection(); try { Connection con = myCon.conn();//Get a Connection object stmt = con.createStatement();//Get a Statement object } catch(SQLException e) { System.out.println("1.)Error in con or stmt "+e.toString()); } Scanner in = new Scanner(System.in); JPanel TTPanel = new JPanel(); //New Panel to be addded to frame page1rowTypeA Trow = new page1rowTypeA(TTPanel, "Batch", initialOptions("batch"), 25); page1rowTypeA Crow = new page1rowTypeA(TTPanel, "Course", initialOptions("course"), 60); page1rowTypeA Grow = new page1rowTypeA(TTPanel, "Room", initialOptions("room"), 95); page1rowTypeA Rrow = new page1rowTypeA(TTPanel, "teacher", initialOptions("teacher"), 130); add(TTPanel, BorderLayout.CENTER);//adds TTPanel to the frame add(page1rowTypeA.tf_south, BorderLayout.SOUTH); } public String[] initialOptions( String tname ) { int noOfRows=0; qry=new String("select count(*) from "+tname);//Execute queries and/or updates String[] CBoxOptions = null; try { rset=stmt.executeQuery(qry); while(rset.next()) { noOfRows = rset.getInt(1); } CBoxOptions = new String[noOfRows]; qry=new String("select * from "+tname);//Execute queries and/or updates rset=stmt.executeQuery(qry); for(int count=0; rset.next(); count++) { CBoxOptions[count] = rset.getString(1); } } catch(Exception e) { System.out.println("2.)Error in InitialOptions "+e.toString()); } return (CBoxOptions); } public static void insert(String itemToInsert, String tName) { qry = "Insert into "+tName+" values("+itemToInsert+")"; try{ qry_op = stmt.executeUpdate(qry); } catch(SQLException e) { System.out.println("Error in static insert() "+e.toString()); } if(qry_op == 1) System.out.println(itemToInsert+" inserted in "+tName); } public static void delete(String itemToDelete, String tName) { qry = "delete from "+tName+" where id = "+itemToDelete; try { qry_op = stmt.executeUpdate(qry); } catch(SQLException e) { System.out.println("Error in static delete() "+e.toString()); } if(qry_op == 1) System.out.println(itemToDelete+" Deleted in "+tName); } public static void update(String oldItem, String newItem, String tName) { qry = "Update "+tName+" set id = "+newItem+" where id = "+oldItem; try { qry_op = stmt.executeUpdate(qry); } catch(SQLException e) { System.out.println("Error in static update() "+e.toString()); } if(qry_op == 1) System.out.println("Item "+oldItem+" Updated to "+newItem+" in "+tName); } private static final int DEFAULT_WIDTH = 400; private static final int DEFAULT_HEIGHT = 400; } class page1rowTypeA implements ActionListener{ page1rowTypeA(JPanel myPanel, String tName,String[] CBoxOptions, int posY){ this.tName = tName; JLabel myLabel = new JLabel(tName); myCBox=new JComboBox(CBoxOptions); tf1 = new JTextField("Insert "+tName+":"); btnInsert = new JButton("Insert");//Insert btnUpdate = new JButton("Update");//Update btnDelete = new JButton("Delete");//Delete btnInsert.addActionListener(this); btnUpdate.addActionListener(this); btnDelete.addActionListener(this); addTextfieldsToMyInnerPanel(); myInnerPanel.add(btnInsert);//add btn to myInnerPanel myInnerPanel.add(btnUpdate);//add btn to myInnerPanel myInnerPanel.add(btnDelete);//add btn to myInnerPanel JPanel OPanel = new JPanel(); OPanel.add(myLabel);// myLabel.setBounds(25, posY, 70, 30);//add faceLabel to OPanel OPanel.add(myCBox); //myCBox.setBounds(100, posY, 70, 30);//add faceCBox to OPanel OPanel.add(myInnerPanel);// myInnerPanel.setBounds(175, posY, 70, 30);//add inner panel to OPanel myPanel.add(OPanel);//add OPanel to myPanel //OPanel.setBounds(25, posY, 40, 300); } void addTextfieldsToMyInnerPanel(){ myInnerPanel.add(tf1);//add tf1 to myInnerPanel } public void actionPerformed(ActionEvent event) { String btnLabel = event.getActionCommand(); if(btnLabel == "Insert") { String itemToInsert = tf1.getText(); myFrame.insert(itemToInsert, tName); myCBox.addItem(itemToInsert); tf_south.setText(itemToInsert +" inserted.."); } else if(btnLabel == "Update") { String newItem = tf1.getText(); if(myCBox.getSelectedIndex() != -1) { String itemToUpdate = (String)myCBox.getSelectedItem(); myFrame.update(newItem, itemToUpdate, tName); myCBox.removeItem(itemToUpdate); myCBox.addItem(newItem); tf_south.setText(itemToUpdate+" updated as "+newItem+".."); } else { tf_south.setText("CAUTION: Select an item from the List to update.."); } } else if(btnLabel == "Delete") { if(myCBox.getSelectedIndex() != -1) { String itemToDelete = (String)myCBox.getSelectedItem(); myFrame.delete(itemToDelete, tName); myCBox.removeItem(itemToDelete); tf_south.setText(itemToDelete+" deleted.."); } else { tf_south.setText("CAUTION: Select an item from the List to delete.."); } } } JComboBox myCBox; String tName; static JTextField tf_south = new JTextField("Welcome"); protected JPanel myInnerPanel = new JPanel(); JButton btnInsert; JButton btnUpdate; JButton btnDelete; JTextField tf1; }/* class page1rowTypeB extends page1rowTypeA{ page1rowTypeB(JPanel myPanel, String LabelName,String[] CBoxOptions, int posY) { super(myPanel, LabelName, CBoxOptions, posY); } void addTextfieldsToMyInnerPanel(){ myInnerPanel.add(tf1);//add tf1 to myInnerPanel myInnerPanel.add(tf2);//add tf2 to myInnerPanel } public JTextField tf2; }*/ /*class page1rowTypeB{ page1rowTypeB(JPanel myPanel, String LabelName,String[] CBoxOptions, int posY){ JLabel myLabel = new JLabel(LabelName); JComboBox myCBox=new JComboBox(CBoxOptions); JPanel myInnerPanel = new JPanel(); tf1 = new JTextField("Insert "+LabelName); // tf2 = new JTextField("input2.."); btnTEdit = new JButton("Insert");//Insert Delete myInnerPanel.add(tf1);//add tf1 to myInnerPanel // myInnerPanel.add(tf2);//add tf2 to myInnerPanel myInnerPanel.add(btnTEdit);//add btnTEdit to myInnerPanel JPanel OPanel = new JPanel(); OPanel.add(myLabel);// myLabel.setBounds(25, posY, 70, 30);//add faceLabel to OPanel OPanel.add(myCBox); //myCBox.setBounds(100, posY, 70, 30);//add faceCBox to OPanel OPanel.add(myInnerPanel);// myInnerPanel.setBounds(175, posY, 70, 30);//add inner panel to OPanel myPanel.add(OPanel);//add OPanel to myPanel //OPanel.setBounds(25, posY, 40, 300); } JButton btnTEdit; public JTextField tf1; // public JTextField tf2; }*/